package net.xju3_4.entity;

import java.io.Serializable;

/**
 * 用户基本信息实体类（对应 user 表）
 */
public class UserEntity implements Serializable {
    // 序列化版本号（确保序列化兼容性）
    private static final long serialVersionUID = 1L;

    // 对应表中字段：id（用户ID，主键）
    private Integer id;

    // 对应表中字段：username（登录用户名）
    private String username;

    // 对应表中字段：password（密码）
    private String password;

    // 对应表中字段：phone（手机号）
    private String phone;

    // 对应表中字段：real_name（真实姓名）
    private String realName;

    // 对应表中字段：id_card_encrypted（身份证号（加密））
    private String idCardEncrypted;

    // 对应表中字段：driver_license_encrypted（驾驶证号（加密））
    private String driverLicenseEncrypted;

    // 对应表中字段：avatar_url（用户头像URL）
    private String avatarUrl;

    // 对应表中字段：status（状态（0-禁用，1-正常））
    private Integer status;


    // 无参构造方法（必须，用于反射实例化）
    public UserEntity() {
    }

    // 全参构造方法（可选，用于快速创建对象）
    public UserEntity(Integer id, String username, String password, String phone, String realName,
                      String idCardEncrypted, String driverLicenseEncrypted, String avatarUrl, Integer status) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.phone = phone;
        this.realName = realName;
        this.idCardEncrypted = idCardEncrypted;
        this.driverLicenseEncrypted = driverLicenseEncrypted;
        this.avatarUrl = avatarUrl;
        this.status = status;
    }


    // 所有字段的 getter 和 setter 方法
    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName;
    }

    public String getIdCardEncrypted() {
        return idCardEncrypted;
    }

    public void setIdCardEncrypted(String idCardEncrypted) {
        this.idCardEncrypted = idCardEncrypted;
    }

    public String getDriverLicenseEncrypted() {
        return driverLicenseEncrypted;
    }

    public void setDriverLicenseEncrypted(String driverLicenseEncrypted) {
        this.driverLicenseEncrypted = driverLicenseEncrypted;
    }

    public String getAvatarUrl() {
        return avatarUrl;
    }

    public void setAvatarUrl(String avatarUrl) {
        this.avatarUrl = avatarUrl;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }


    // 重写 toString 方法（方便日志打印）
    @Override
    public String toString() {
        return "UserEntity{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='[加密]'" +  // 密码脱敏，避免日志泄露
                ", phone='" + phone + '\'' +
                ", realName='" + realName + '\'' +
                ", idCardEncrypted='[加密]'" +  // 身份证号脱敏
                ", driverLicenseEncrypted='[加密]'" +  // 驾驶证号脱敏
                ", avatarUrl='" + avatarUrl + '\'' +
                ", status=" + status +
                '}';
    }
}